package com.example.demo.day0228;

/**
 * 将一个enum嵌套在另一个enum内
 */
enum  SC {
    STOCK(S.Stock.class),
    BOND(S.Bond.class);

    S[] values;
    SC (Class<? extends S> kind){
        values = kind.getEnumConstants();//以数组的形式返回对象所属枚举类中的元素
    }

    interface S{//创建一个接口S，其作用为将所包含的枚举类组合成一个公共类型，然后SC类中才能将S接口中的枚举类作为其构造器的参数
        enum Stock implements S{SHORT,LONG,MARGIN}//在接口中创建两个枚举类
        enum Bond implements S{MUNICIPAL,JUNK}
    }
    public S randomSelection(){
        return Enums.random(values);
    }

    public static void main(String[] args) {
        for (int i = 0;i < 10;i++){//建立一个循环数为十的for循环
            SC sc = Enums.random(SC.class);//定义一个类SC的对象sc，随机将SC类中的赋值给sc
            System.out.println(sc + ":"+sc.randomSelection());
        }
    }
}
